#include <REGX52.H>

/*自己写的：
void Timer0_Init()
{
	//TMOD=0x01;//二进制：0000 0001
	//改进：
	TMOD=TMOD&0xF0;//与&方法清零：把TMOD的低四位清零，高四位保存不变，例子：1010 0011&1111 0000=1010 0000
	TMOD=TMOD|0x01;//或|方法清零：把TMOD的低四位置1，高四位保存不变，例子：1010 0000|0000 0001=1010 0001
	TF0=0;
	TR0=1;
	
	//为了让定时器从64535开始计数，当计数到65535时溢出，溢出时间较短，便于实现快速的定时功能
	TH0=64535/256;//高位
	TL0=64535%256+1;//地位
	
	//打通通路
	ET0=1;
	EA=1;
	PT0=0;
}
*/

//isp烧录软件里的定时器计算器给的代码：（对比一下，该代码少了连接通路的操作，要记得加上）
void Timer0_Init()		//1毫秒@11.0592MHz
{
	//这句要删掉：AUXR &= 0x7F;			//定时器时钟12T模式
	TMOD &= 0xF0;			//设置定时器模式
	TMOD |= 0x01;			//设置定时器模式
	TL0 = 0x66;				//设置定时初始值
	TH0 = 0xFC;				//设置定时初始值
	TF0 = 0;				//清除TF0标志
	TR0 = 1;				//定时器0开始计时
	
	//打通通路
	ET0=1;
	EA=1;
	PT0=0;
}

/*
void Timer0_Routine() interrupt 1//中断函数
{
	static unsigned int T0Count;//加上static保持上次的值，为静态变量
	//重新给T0定时器赋初始值
	TL0 = 0x66;				//设置定时初始值
	TH0 = 0xFC;				//设置定时初始值
	
	//假设单片机的时钟频率为12MHz，定时器的计数频率为12MHz / 12 = 1MHz
	//（因为8051单片机的定时器计数频率是时钟频率的1/12），即每1微秒计数一次。
	//因此，定时器从64535计数到65535需要1000微秒，即1毫秒。
	T0Count++;
	if(T0Count>=1000)
	{
		T0Count=0;
		P2_0=~P2_0;
	}
}
*/